package com.lmf.juc.sync.case1;

/**
 * 多线程编程步骤：
 *      1.定义资源类
 *      2.创建多个线程同时去调用资源类
 *
 *  以下是创建一个多线程抢票案例：卖票窗口,利用 synchronized 同步锁关键字实现
 */
//定义资源类
public class SaleTicket {

    //声明总票数
    private int number = 30;

    //创建买票的方法:使用同步锁
    public synchronized void saleTickets() throws InterruptedException {
        //判断一下还有没有票
        if (number > 0) {
            number--;
            System.out.println(Thread.currentThread().getName() + ":买了1张票，还剩：" + number);
        }else {
            //没有票就结束该方法
            System.out.println("票已经卖完了！！！");

            //线程睡眠
//            Thread.sleep(Long.MAX_VALUE);

            //线程结束
            Thread.currentThread().stop();
        }

    }
}
